#include <io.h>
#include <stdio.h>
#include <string.h>
#include "icmp.h"
#include "../utility.h"


// Обработчик пакетов icmp
alt_u8 icmp_echo(alt_u8* header)
{
	alt_u8 			err = 0;		// Код ошибки
	icmp_header_t*	icmp_header;	// Указатель на заголовок icmp

	icmp_header = (icmp_header_t*)(header);

	if (icmp_header->type == ICMP_TYPE_ECHO_RQ)
	{
        // Меняем тип пакета на ответ
		icmp_header->type = ICMP_TYPE_ECHO_RPLY;

        // Обновляем контрольную сумму,
        // мы изменили только одно поле в пакете,
        // так что пересчитывать полностью не обязательно
		icmp_header->cksum += 8;
	}
	else
	{
		err = 1;
	}

	return err;
}


